libxl: Fix the build by reinstating some sysctl.physinfo fields.
authorKeir Fraser <keir.fraser@citrix.com>
Thu, 8 Apr 2010 15:11:17 +0000 (16:11 +0100)
committerKeir Fraser <keir.fraser@citrix.com>
Thu, 8 Apr 2010 15:11:17 +0000 (16:11 +0100)
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
xen/arch/x86/sysctl.c
xen/include/public/sysctl.h

index ae564d2017c8b42fc9aa8a38c994f5fc042c11e1..80b7af7baffa246c8fa55c21f904027e90c2c267 100644 (file)
@@ -59,10 +59,13 @@ long arch_do_sysctl(
             cpus_weight(per_cpu(cpu_sibling_map, 0));
         pi->cores_per_socket =
             cpus_weight(per_cpu(cpu_core_map, 0)) / pi->threads_per_core;
-        pi->nr_cpus = (u32)num_online_cpus();
-        pi->nr_nodes = (u32)num_online_nodes();
-        pi->sockets_per_node =  pi->nr_cpus / 
-                     (pi->nr_nodes * pi->cores_per_socket * pi->threads_per_core);
+        pi->nr_cpus = num_online_cpus();
+        pi->nr_nodes = num_online_nodes();
+        pi->max_node_id = last_node(node_online_map);
+        pi->max_cpu_id = last_cpu(cpu_online_map);
+        pi->sockets_per_node = 
+            pi->nr_cpus / 
+            (pi->nr_nodes * pi->cores_per_socket * pi->threads_per_core);
         pi->total_pages = total_pages;
         pi->free_pages = avail_domheap_pages();
         pi->scrub_pages = 0;
index 27c21ecc14be7d98c7f5ab224e26e59df0da3542..eb9f1b8325fb3e4117eae12da02cae1071848c72 100644 (file)
@@ -94,8 +94,8 @@ struct xen_sysctl_physinfo {
     uint32_t threads_per_core;
     uint32_t cores_per_socket;
     uint32_t sockets_per_node;
-    uint32_t nr_cpus;
-    uint32_t nr_nodes;
+    uint32_t nr_cpus, max_cpu_id;
+    uint32_t nr_nodes, max_node_id;
     uint32_t cpu_khz;
     uint64_aligned_t total_pages;
     uint64_aligned_t free_pages;